#include "GlobalHeader.h"
#include "StdFIFO.h"

#define FIFOFILE "FIFO"
#define FIFOFILE2 "FIFO2"

// int main()
// {
//     //文件对创建者来说可读 或 可写 600
//     int ret = mkfifo(FIFOFILE,S_IRUSR | S_IWUSR);
//     if(ret < 0)
//     {
//         perror("mkfifo");
//     }

//     int ret2 = mkfifo(FIFOFILE2,S_IRUSR | S_IWUSR);
//     if(ret2 < 0)
//     {
//         perror("mkfifo");
//     }

//     //以只写的形式打开文件 open韩式的返回值是一个文件的描述符
//     //open是阻塞文件:管道要打开两端才工作
    
//     int fd = open(FIFOFILE,O_WRONLY); 
//     if(fd < 0)
//     {
//         perror("open");
//         return -1;
//     }

//     int fd2 = open(FIFOFILE2,O_RDONLY); 
//     if(fd2 < 0)
//     {
//         perror("open");
//         return -1;
//     }

//     while(1)
//     {
//         char msg[32] = {0};
//         scanf("%[^\n]",msg);
//         while(getchar() != '\n');
//         write(fd,msg,sizeof(msg));

//         memset(msg,0,32);
//         read(fd2,msg,32);
//         printf("read info : %s\n",msg);
//     }
//     close(fd);
//     close(fd2);
//     return 0;
// }

int main()
{
    FIFO *f1 = InitFIFO(FIFOFILE,WriteOnly);
    FIFO *f2 = InitFIFO(FIFOFILE2,ReadOnly);
    while(1)
    {
        char msg[32] = {0};
        scanf("%[^\n]",msg);
        while(getchar() != '\n');
        WriteFIFO(f1,msg,32);

        memset(msg,0,32); 
        ReadFIFO(f2,msg,32);
        printf("read info : %s\n",msg);
    }
    ClearFIFO(f1);
    ClearFIFO(f2);
    return 0;
}